package com.mine.yyb.listener;

import java.io.File;

import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import com.mine.yyb.common.consts.YybConstants;
import com.mine.yyb.common.utils.log.MineLogBackConfigLoader;

/**
 * 
 * <pre>
 * <一句话功能简述>
 * 初始化
 * <功能详细描述>
 * </pre>
 * 
 * @author xiongwei
 * @version [版本号, 2015年5月28日]
 * @see [相关类/方法]
 * @since [产品/模块版本]
 */
public class InitializeListener implements ServletContextListener
{
    /*** 日志 */
    private static Logger logger = LoggerFactory.getLogger(InitializeListener.class);
    
    @Override
    public void contextDestroyed(ServletContextEvent servletContextEvent)
    {
    
    }
    
    /**
     * <一句话功能简述><br>
     * 
     * <功能详细描述><br>
     * 
     * @author 姓名 工号
     * @version [版本号, 2014-11-5]
     * @see [相关类/方法]
     * @since [产品/模块版本]
     * @param arg0
     */
    @Override
    public void contextInitialized(ServletContextEvent contextEvent)
    {
        String configPath =
            YybConstants.ROOT_PATH + YybConstants.CONFIG_PATH + YybConstants.SERVER_CONTEXT_PATH + File.separator;
        logger.info("CONFIG_PATH:" + configPath);
        
        // 设置配置文件路径
        System.setProperty("CONFIG_PATH", configPath);
        
        // 设置日志文件路径
        String loggerRootPath = YybConstants.ROOT_PATH + YybConstants.LOG_PATH + YybConstants.SERVER_CONTEXT_PATH + File.separator;
        System.setProperty("LOGGER_ROOT_PATH", loggerRootPath);
        logger.info("LOGGER_ROOT_PATH:" + loggerRootPath);
        
        // 加载log日志
        try
        {
            MineLogBackConfigLoader.load(YybConstants.ROOT_PATH,
                YybConstants.CONFIG_PATH + YybConstants.SERVER_CONTEXT_PATH + File.separator,
                YybConstants.LOG_CONFIG_NAME);
            logger.info("***********Initialization logger is successfully**********");
            
        }
        catch (Exception e)
        {
            e.printStackTrace();
        }
        
    }
    
}
